home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # Gianni Mariani 9-Apr-1994
- #
- # Fire the recycle in processes that are armed by MMmalloc
- #
- #
-
- USAGE="MMfire [ -s ]|[ -v ]" # -s is silent mode. -v very verbose
-
- SIGNAL=RTMIN
- ARMFILE=/var/malloc/ArmMMmalloc
- LOGFILE=/tmp/MMmalloc.log
-
- if test -f $ARMFILE ; then
-
- if test "x$1" = "x-s" ; then
- ECHOCMD=true
- VERBOSE=false
- VVERBOSE=false
- elif test "x$1" = "x-v" ; then
- VERBOSE=true
- VVERBOSE=true
- ECHOCMD=echo
- elif test "x$1" = "x-u" ; then
- PROCS=`fuser -q $ARMFILE`
- if test -n "$PROCS" ; then
- echo "Processes currently armed to recycle:"
- ps -f -p `fuser -q $ARMFILE`
- else
- echo "No processes armed to recycle"
- fi
- exit 0
- else
- VERBOSE=true
- VVERBOSE=false
- ECHOCMD=echo
- fi
-
- if test ! -w $ARMFILE ; then
- $ECHOCMD "WARNING: $0 is best run by root" 1>&2
- fi
-
- PROCS=`( fuser $ARMFILE 2> /dev/null; echo ) | sed -e s/$$//`
-
- if test -n "$PROCS" ; then
-
- if $VERBOSE ; then
-
- if $VVERBOSE ; then
- echo "Processes currently armed to recycle:"
- ps -f -p `fuser -q $ARMFILE`
- fi
-
- # create the log file if nessasary
- if test ! -r $LOGFILE ; then
- OLDMASK=`umask`
- umask 000
- touch $LOGFILE
- umask $OLDMASK
- fi
-
- # Make tail send any new logs to standard out
- ( exec tail -0cf $LOGFILE )&
- PID=$!
- sleep 0
- if fuser $LOGFILE 2>/dev/null | grep -v $PID > /dev/null ; then
- sleep 1
- fi
-
- /bin/kill -$SIGNAL $PROCS 1>&2 2> /dev/null
-
- sleep 3
- exec /bin/kill -TERM $PID 2> /dev/null
- else
- /bin/kill -$SIGNAL $PROCS 2> /dev/null
- fi
- exit 0
- else
- $ECHOCMD "No processes armed to recycle" 1>&2
- exit 1
- fi
- else
- $ECHOCMD "$ARMFILE does not exist - Recycle not fired" 1>&2
- exit 2
- fi
-